2.08. Основы информационной безопасности
Конфиденциальная информация
*** В разработке ***
NDA
Нельзя подписывать NDA со своими друзьями, чтобы поделиться инсайдом, это так не работает.
Какая информация является NDA?
Алгоритмы, технические решения, НЕ общеизвестные способы и подходы, рекламные технологии, дизайны, исходный код, данные в базах, доступы и пути, и многое другое, инсайдерская (грядущая или прогнозируемая информация), результаты анализов, внутренние инструменты, программное обеспечение, персональные данные, служебные инструкции, документация - любая информация, обладание которой может привести к нечестной конкуренции на рынке или нанесёт ущерб компании.
Пометка NDA или ДСП, грифы, гостайна, коммерческая, банковская, личная тайна
Персональные данные
Как понять, подпадает ли информация под NDA?
Некоторая информация может пересылать данные не сторонние серверы, например, программы конкурентов, мессенджеры, браузеры, сервисы хранения. Как хранить NDA информацию?
Первый враг безопасности конфиденциальной информации - сам обладатель информации. Второй враг - тот, кто может получить доступ теоретически.
УК РФ, статья 183, незаконные получение и разглашение сведений, составляющих коммерческую, налоговую или банковскую тайну.
УК РФ, статья 137, нарушение неприкосновенности частной жизни.
ГК РФ, статья 15, возмещение ущерба, статья 1472, ответственность за нарушение исключительного права на секрет производства.
*** В разработке ***
Инфобез
Информационные технологии включают в себя множество различных источников, мест и методик обработки, хранения и сбора информации. В самом фундаменте этого лежит особая область IT - информационная безопасность (инфобез, или InfoSec).
Информационная безопасность (ИБ) — это практика защиты информации от несанкционированного доступа, изменения, уничтожения или раскрытия. Говоря проще — это набор правил, методов и технологий, которые помогают нам сохранить данные такими, какими они должны быть: целыми, конфиденциальными и доступными только тем, кому положено.
Когда мы говорим о деньгах и их хранении, доступности и конфиденциальности информации, связанной с ними - мы соблюдаем множество правил - не раздавать деньги всем налево-направо, не давать пароль от сейфа, внимательно изучать реквизиты при переводе. Ошибка будет стоить нам потери денег - поэтому мы придерживаемся какого-то набора методов и технологий, чтобы сохранить деньги в безопасности.
А как мы понимаем, сервера, код, приложения, алгоритмы и данные - это деньги. Поэтому информационная безопасность должна быть в наших головах словно обращение с деньгами. Вот взять офисного халатного сотрудника - он хранит пароль для входа в компьютер на бумажке, которая прилеплена к монитору. А будет ли он так хранить пароль от сейфа с его сбережениями? Вряд ли.
Что делает банковский сейф?
- Он защищает содержимое от посторонних - это конфиденциальность.
- Он позволяет убедиться, что никто не может подменить или испортить то, что внутри - это целостность.
- Он доступен владельцу в нужный момент - это доступность.
Эти три пункта - основные цели информационной безопасности, их называют триадой ИБ - конфиденциальность, целостность и доступность. Информационная безопасность есть базовая и продвинутая. В настоящей главе мы рассмотрим базовую, а продвинутую - в третьем томе.
Важно запомнить, что безопасность сама по себе не задача специалистов по ИБ, а ответственность каждого, кто работает с данными - от программиста до менеджера проекта. Программы могут содержать уязвимости, пароли могут быть слабыми, люди могут быть обмануты, а серверы могут быть неправильно настроены. Одна небольшая ошибка может привести к масштабной утечке данных, финансовым потерям, юридическим последствиям и потере доверия пользователей.
Защита информации строится на нескольких ключевых принципах:
- Не доверяй, проверяй (Zero Trust). Нельзя автоматически считать, что всё внутри системы безопасно. Каждый запрос, каждое действие должно проверяться.
- Минимизация привилегий (Principle of Least Privilege). Пользователь или программа должны иметь минимальные права, необходимые для выполнения задачи.
- Шифрование данных. Если данные утекут, но будут зашифрованы — злоумышленник ничего не сможет с ними сделать.
- Резервные копии. Если данные потеряются или будут повреждены (например, ransomware), можно восстановить из бэкапа.
- Обновление систем. Уязвимости закрываются через обновления. Если система не обновляется — она уязвима.
Чтобы понять, как защищаться, нужно понимать, от чего именно мы защищаемся. Вот несколько распространённых типов угроз:
- Хакеры — люди или группы, пытающиеся получить несанкционированный доступ к системам.
- Вредоносное ПО (мальварь) — программы, созданные специально для вреда: вирусы, трояны, шифровальщики (ransomware).
- Фишинг — обман пользователя, чтобы он сам дал свои данные (например, через поддельное письмо).
- DDoS-атаки — массовые запросы, которые «заваливают» сайт или сервис.
История инфобеза
Корни ИБ уходят в прошлое, ещё туда, где люди начали передавать секретную информацию. Вообще, сам по себе секрет - уже информация. Можно стартовать даже с библейских сказаний о первых людях, интригах, сокрытии и лжи.
В Древнем Египте (приблизительно 1900 г. до нашей эры) использовались необычные символы в надписях, чтобы усложнить их понимание для посторонних. В античном мире, к примеру, в Спарте (V век до нашей эры) греческие военачальники использовали устройство под названием скитала - цилиндрическая палка, на которую наматывалась лента с сообщением. Без правильного цилиндра текст выглядел бессмысленным.
Римская империя славилась самым известным первым шифром - шифр Цезаря, при котором буквы заменялись другими, отстающими на определённое число позиций в алфавите. Например, слово «привет» может превратиться в «утмжкч», если сместить все буквы на три позиции вперёд. Вроде бы просто, но всё же шифрование - а это основа криптографии.
С развитием государственной власти и дипломатии потребность в секретной переписке росла. Вообще, любые военно-оборонные движения требовали шифрование информации и её защиту. А революционные, тайные и преступные движения и вовсе нуждались в максимальной секретности. В Средние века появились более сложные системы шифрования.
Аль-Кинди (IX век), арабский учёный, описал первый метод частотного анализа для взлома шифров. Его трактат «Руководство по дешифровке криптографических сообщений» стал первым известным руководством по криптоанализу. Частотный анализ подразумевает метод взлома простых шифров (например, замены букв), основанный на том, что определённые буквы встречаются в тексте с разной частотой. Например, в английском языке чаще всего встречается буква E, а в русском - О и А. Если есть зашифрованный текст, можно проанализировать, какие символы встречаются чаще всего, и предположить, какие буквы они представляют. Это был настоящий прорыв - ведь до этого люди считали, что шифр может быть неразгаданным, если его алгоритм скрыт.
После того, как частотный анализ стал широко использоваться, криптографы начали разрабатывать новые способы шифрования, устойчивые к этому методу. Так появились полиалфавитные шифры, в которых одна и та же буква исходного текста может обозначаться разными символами в шифровке. В начале XVI века монах Иоганн Тритемий разработал систему шифрования, основанную на последовательном изменении алфавита. Его книга «Полиграфия» стала первым печатным трудом по криптографии. Он предложил использовать таблицу, где каждая строка - это алфавит, смещённый на одну букву. Сообщение шифровалось с постепенным переходом от строки к строке.
Итальянский криптограф Джован Баттиста Белазо в 1553 году предложил использовать ключевое слово для выбора строк в таблице Тритемия. Это сделало шифр намного более гибким и безопасным.
Самый известный полиалфавитный шифр - шифр Виженера, названный в честь французского дипломата Блеза де Виженера. Хотя он не был его изобретателем, он популяризировал эту систему - создаётся таблица Виженера, выбирается ключевое слово, а каждая буква открытого текста шифруется с использованием строки, соответствующей букве ключа. После окончания ключа он повторяется снова. Такой метод стал устойчив к частотному анализу - одна и та же буква может выглядеть по-разному в шифровке. Шифр Виженера долгое время считался нерушимым, пока его в XIX веке не взломали Чарльз Бэббидж и Фридрих Касиски.
Если криптография - это искусство скрывать смысл сообщения, то стеганография - это искусство скрывать само наличие сообщения. Невидимые чернила подразумевали метод, когда сообщения писались растворами молока, лимонного сока или других веществ, невидимых невооружённым глазом. но проявляющихся при нагревании.
Два других подхода стеганографии были чуть интереснее - это скрытие в тексте (например, каждая первая буква предложения составляла секретное сообщение) и картинки, символы (художники могли включать в свои картины скрытые знаки и коды). Сегодня стеганография используется для скрытия данных в изображениях (замена младших битов цвета), передачи информации в аудио и видео потоках, и конечно для защиты авторских прав через цифровые водяные знаки.
Период Второй мировой войны также значительно изменил историю ИБ, ведь технологии шифрования стали ключевым элементом военной стратегии. Одним из самых известных примеров стало использование немецкой шифровальной машины Энигма, которая позволяла шифровать сообщения чрезвычайно сложным способом. Каждое нажатие клавиши меняло систему шифрования, деля вскрытие кода практически невозможным без знания ключа. Но усилиями союзников, особенно группы криптографов из Блетчли-парка (Великобритания), удалось создать машины для дешифровки, такие как «Бомба» и позднее «Колосс». Работу возглавлял математик Алан Тьюринг, которого сегодня считают одним из основоположников информатики и искусственного интеллекта.
После войны началась цифровая эпоха. Компьютеры с годами становились доступнее, и разумеется сгенерировали новые проблемы. В 1971 году был создан первый в мире компьютерный вирус - Creeper, который перемещался по сетям. В 1986 году появился Brain, первый вирус, поражающий персональные компьютеры IBM PC. Тогда же появились первые исследования в области компьютерной безопасности - начали разрабатывать политики контроля доступа, модели безопасности (например, модель Харрисона-Рузо-Ульмана). Усиленно развивалась криптография, включая появление открытых стандартов шифрования.
С выходом интернета в массы и развитием коммуникаций, пришли новые угрозы - появились первые червяки (Morris Worm, 1988), который случайно парализовал значительную часть интернета. Тогда же начала расти популярность DDoS-атак, фишинга, троянов и других видов киберугроз. Защита тоже развивалась. Появились антивирусы (Dr.Web, Norton, Kaspersky и другие), разрабатывались фаерволы и системы обнаружения вторжений (IDS). Созданы протоколы шифрования, такие как SSL, TLS, которые стали основой для безопасного HTTPS. Появилась должность специалиста по информационной безопасности, а также стандарты, вроде ISO/IEC 27001, регулирующие управление информационной безопасностью.
Защита информации
Информация — это один из самых ценных ресурсов в современном мире. Её защита требует не только технических решений, но и чёткого понимания, кто, когда и на каких условиях может получить доступ к данным.
Одним из фундаментальных принципов информационной безопасности является управление доступом — контроль над тем, какие пользователи или системы могут просматривать, изменять или удалять данные.
Основных уровней доступа три:
- Администратор - полный доступ ко всем системам и данным, может управлять пользователями, настраивать права, обновлять ПО;
- Пользователь - ограниченный доступ, может работать с определёнными функциями или данными, необходимыми для выполнения своих задач;
- Гость - минимальный уровень доступа, часто используется для временного использования системы без возможности изменения данных.
Управление доступом строится на трёх принципах:
- Принцип минимальных привилегий - пользователь должен иметь только те права, которые ему действительно нужны.
- Разделение обязанностей - ответственность за критически важные операции распределяется между несколькими лицами.
- Аутентификация и авторизация - нужно подтвердить личность (логин/пароль, двухфакторная аутентификация) и проверить, что у пользователя есть право на действия (роли, группы).
Не вся информация может быть доступна всем. Некоторые данные требуют особой охраны. Рассмотрим основные виды «тайной» информации.
- Государственная тайна. Это информация, которая затрагивает интересы государства и безопасность страны. Доступ к ней ограничен по закону. Это военные технологии, сведения о разведке, ядерные исследования, стратегическое планирование. В разных странах существуют свои классификации секретности (например, «Секретно», «Совершенно секретно», «Для служебного пользования» и др.). Защищается она при помощи контроля доступа, шифрования, физической охраны и специальных служб безопасности.
- Коммерческая тайна. Это конфиденциальная информация, которая даёт организации конкурентное преимущество. Такие данные не обязательно засекречены государством, но их утечка может серьёзно повлиять на бизнес. К примеру, это формула Coca-Cola, алгоритм ранжирования Google, секреты производства, патенты до публикации, бизнес-планы. Защита выполняется при помощи ограничения доступа внутри компании, использования NDA (соглашений о неразглашении), внутренних политик ИБ, шифрования и контроля за передачей данных.
- Персональные данные. Это любая информация, позволяющая идентифицировать человека: имя, адрес, номер телефона, электронная почта, биометрия и т. д. Для защиты персональных данных, используется шифрование при хранении и передаче, контроль доступа, обязательное согласие пользователя и анонимизация данных (обезличенность).
Даже самая мощная система шифрования бесполезна, если человек, которому доверили информацию, сам её раскроет. Поэтому одним из ключевых инструментов защиты информации остаётся соглашение о неразглашении (Non-Disclosure Agreement, NDA). Это юридический документ, который обязывает сторону (или стороны) не раскрывать определённую информацию третьим лицам. Применяется он при найме сотрудников, имеющих доступ к внутренней информации, при этапе работы с подрядчиками и партнёрами, на этапе переговоров о слиянии компаний и при тестировании продуктов. Первое официальное соглашение о неразглашении было подписано ещё в XIX веке между производителями текстиля.
Обычно в NDA указывается, какая информация считается конфиденциальной, на какой срок распространяется действие, кто имеет право на ознакомление с данными и последствия нарушения соглашения (штрафы, судебные иски). К примеру, когда разработчики подписывают NDA перед запуском нового продукта, они не имеют права рассказывать о деталях проекта даже после увольнения.
Почему это так важно? Утечка данных может разорить компанию. Нарушение законодательства влечёт юридическую ответственность. Потеря доверия клиентов приводит к убыткам. Конкуренты могут использовать вашу информацию против вас. Без правильной системы защиты информации компания находится в постоянной зоне риска. В крупных технологических компаниях доступ к информации строго разграничен даже между сотрудниками одного отдела. Некоторые компании используют «ловушки» — специально созданные уникальные данные, чтобы выявить источник утечки.
Доступ
Порой, когда речь идёт о доступе, подразумевается целая совокупность терминов, которая нам кажется элементарной и уже довольно простой. После изобретения кодовых замков и систем идентификации личности, каждый человек, обладающий правом доступа к чему-то закрытому, должен был как-то определяться. К примеру, охранник на пункте у входа в здание определяет доступ по удостоверению или специальным карточкам. Так же и система определяет пользователя. О самих понятиях аутентификации и авторизации мы будем говорить ещё не раз, но сейчас сфокусируемся на других терминах.
Что вообще такое «пользователь»? На английском это «User» - субъект, который взаимодействует с системой, человек, автоматизированный процесс или внешняя система.
Это может быть:
- физическое лицо - сотрудник компании, клиент или администратор;
- системный пользователь - учётная запись для запуска служб и приложений;
- API-пользователь - техническая учётная запись для интеграций между сервисами.
К примеру, когда вы заходите в почту, вы становитесь пользователем системы электронной почты.
Аккаунт (Account) — это уникальная запись в системе, связанная с конкретным пользователем или системой. Обычно включает:
- Уникальный идентификатор (логин, email);
- Пароль (или другой метод аутентификации);
- Данные о регистрации (дата, IP, устройство);
- Связь с профилем.
Регистрируясь на сайте, вы создаёте аккаунт, который потом используется для входа.
Профиль (Profile) — это набор данных о пользователе, связанный с его аккаунтом. Это может быть как минимальный набор данных, так и подробная информация. Он включает в себя:
- Имя, фамилия - личные данные пользователя;
- Email, телефон - контактная информация;
- Фото профиля - визуальное представление;
- Роль (к примеру, администратор);
- Кастомные настройки - тема, язык, предпочтения отображения;
- История действий - последние действия, история посещений.
К примеру, после регистрации в соцсети вы можете заполнить свой профиль, указав имя, фото, интересы и т. д. Права доступа — это ограничения и разрешения, определяющие, что пользователь может делать в системе. Их можно разделить на несколько уровней:
| Уровень | Описание |
|---|---|
| Чтение (Read) | Просмотр информации |
| Запись (Write) | Редактирование данных |
| Удаление (Delete) | Удаление объектов |
| Исполнение (Execute) | Запуск скриптов, команд |
| Администрирование (Admin), иногда называют рут-доступом (Root) | Полный контроль над системой |
Права управляются через роли (Role-Based Access Control, RBAC), группы пользователей, списки доступа (ACL, Access Control List), атрибуты (ABAC, Attribute-Based Access Control).
Политики и меры безопасности
Одна из самых распространённых уязвимостей в системах безопасности — слабые или неправильно используемые пароли. Чтобы этого избежать, компании внедряют политики паролей — правила, регламентирующие, как пользователи должны создавать и использовать свои учетные данные. Разумеется, если бы политик не было, люди бы создавали простые пароли вроде «123456».
Политики паролей - правила создания и использования паролей. Включает минимальную длину, сложность, срок жизни, история.
Минимальная длина обычно 8-12 символов. Обычно 8–12 символов. Чем длиннее пароль — тем сложнее его взломать.
Сложность подразумевает наличие заглавных и строчных букв, цифр и специальных символов (например, !, @, #).
Срок жизни - это определение того, через какой период пароль нужно менять (обычно 60–90 дней).
История паролей - это запрет на повторное использование старых паролей (часто сохраняется последние 5–10 паролей).
И конечно, блокировка после ошибок. Система блокирует аккаунт после нескольких неудачных попыток входа.
Информационная безопасность требует многоуровневого подхода , потому что одна защита никогда не бывает достаточной. Меры безопасности - комплекс действий для защиты системы. Включает шифрование, контроль доступа, обучение, обновления.
Шифрование данных обеспечивает то, что даже если злоумышленник получит данные, он не сможет их прочитать без ключа.
Контроль доступа - это кто, к чему и когда имеет доступ.
Обучение сотрудников подразумевает, что люди — самое слабое звено в цепочке безопасности. Обучение помогает избежать фишинга и социальной инженерии.
Регулярные обновления ПО сомнительно, конечно, но в какой-то мере обеспечивает закрытие уязвимостей в операционных системах и приложениях.
Антивирусы и фаерволы - это защита от вредоносного ПО и несанкционированного сетевого доступа.
Резервное копирование гарантирует восстановление данных в случае потери или атаки.
Авторизация и аутентификация
Аутентификация (Authentication) проверяет личность пользователя или системы. Это процесс проверки «кто ты такой», например, ввод логина и пароля, сканирование отпечатка пальца, одноразовый код из приложения.
Авторизация определяет, какие ресурсы и действия доступны аутентифицированному пользователю. Это процесс определения «что ты можешь делать». К примеру, администратор может удалять данные, пользователь — только просматривать, гость — ничего не может.
Даже хороший пароль может быть украден. Чтобы добавить дополнительный уровень защиты, используется двухфакторная аутентификация (2FA).
Пользователь вводит то, что он знает (логин и пароль), что у него есть (одноразовый код из приложения, SMS, аппаратный ключ), и кто он такой (биометрия, отпечаток пальца, лицо, голос). К примеру - Google Authenticator / Authy, SMS-код, USB-ключи, Push-уведомления. 2FA делает взлом аккаунта намного сложнее, даже если пароль известен.
В разработке
Почему стандартный пароль неэффективен
Двойная проверка
Одноразовый пароль (OTP (One-Time Password))
2FA и более многоступенчатые проверки
SMS коды, Email, Push
Почему 2FA эффективна
Облачные пароли
Аппаратные ключи
Биометрия, отпечатки пальцев, сканирование глаз, голоса, лица и «крутые способы из шпионских фильмов»
В разработке
Что должен соблюдать каждый
Рекомендации к паролям:
- Не менее 12 символов
- Наличие заглавных и строчных букв
- Наличие цифр и специальных символов
- Не должен содержать личные данные (имя, дата рождения, номер телефона)
- Не должен быть очевидным («password», «qwerty», «admin»)
Что нельзя делать:
- Использовать один и тот же пароль на всех сайтах
- Хранить пароли в открытом виде (например, в текстовом файле на рабочем столе)
- Передавать пароль другим людям
- Использовать простые последовательности или слова из словаря
Что можно делать:
- Использовать парольные фразы вместо коротких паролей. Например:
- ЯЛюблюКофе&ПисатьКодВ12Ночи
- Убедиться, что пароль уникален для каждого сервиса
- Использовать менеджеры паролей
Человеческий мозг плохо подходит для запоминания десятков уникальных и сложных паролей. На помощь приходят менеджеры паролей — программы, которые хранят все пароли в зашифрованном виде и позволяют легко ими пользоваться, к примеру, Passwork, KeePass, Bitwarden, LastPass, 1Password. Важно выбирать менеджеры, которые поддерживают двухфакторную аутентификацию и позволяют экспортировать базы паролей.
При работе на чужом устройстве, важно помнить следующее:
- Не сохраняй пароли в браузере.
- Не оставляй открытые вкладки с аккаунтами.
- После использования выйди из всех сервисов.
- Используй режим приватного просмотра.
- Лучше всего — включить 2FA, чтобы даже при утечке сессии тебя не смогли использовать.
Вирусы и прочее
Один из самых распространённых способов проникновения в систему — не технический, а человеческий. Это называется социальная инженерия , и она работает потому, что люди доверяют, ошибаются или торопятся.
Социальная инженерия — это метод манипуляции людьми с целью получения доступа к информации, деньгам или ресурсам. Хакеры используют психологические приёмы, чтобы заставить человека совершить действие, которое он бы не совершил в трезвом уме. Примеры социальной инженерии:
- Телефонный звонок от «службы поддержки», которая просит назвать пароль.
- Поддельное письмо от «банка» с требованием «немедленно обновить данные».
- Фальшивый сотрудник IT-отдела, который якобы пришёл починить компьютер.
Самое важное правило: никогда не передавайте свои логины, пароли или персональные данные по телефону, SMS или электронной почте.
Вирус — это программа, которая может копировать себя и заражать другие файлы или программы. Цель вируса — нанести вред: испортить данные, украсть информацию или получить контроль над системой.
Но вирусы — это лишь часть большой группы вредоносного программного обеспечения (malware).
| Тип | Описание |
|---|---|
| Вирус | Заражает файлы и распространяется через них. |
| Червь | Самостоятельно распространяется по сети, не требует файла. |
| Троян | Маскируется под полезную программу, но скрывает в себе вредоносный код. |
| Руткит | Скрывает своё присутствие в системе и даёт удалённый контроль. |
| Шифровальщик (Ransomware) | Шифрует файлы и требует выкуп за ключ. |
| Бэкдор | Создаёт «черный ход» для несанкционированного доступа. |
Как не поймать вирус в интернете?
10 простых правил:
- Не скачивай программы с подозрительных сайтов
- Не открывай вложения в письмах от незнакомцев
- Не переходи по странным ссылкам
- Убедись, что сайт использует HTTPS
- Не доверяй сообщениям вроде: "Ты выиграл iPhone!"
- Используй антивирус и фаервол
- Обновляй операционную систему и программы
- Не запускай .exe, .bat, .scr файлы без проверки
- Используй режим гостя на чужих устройствах
- Включай двухфакторную аутентификацию
Фишинг — это вид мошенничества, при котором злоумышленник выдаёт себя за доверенное лицо или организацию, чтобы украсть конфиденциальные данные, такие как логины, пароли, номера карт.
Как выглядит фишинг:
- Письмо от «Google»: «Ваш аккаунт заблокирован. Нажмите здесь, чтобы разблокировать».
- Сообщение в Telegram: «Вы победили в розыгрыше! Заберите свой приз по ссылке».
- SMS от банка: «Мы заблокировали вашу карту. Перейдите по ссылке, чтобы активировать».
Как отличить фишинг:
- Грамматические ошибки и странная формулировка.
- Ссылка ведёт не на настоящий сайт.
- Срочность и давление: «Сейчас или никогда!»
- Невероятные предложения: «Вы выиграли миллион долларов!»
Как защититься от фишинга и социальной инженерии?
- Никогда не передавай свои данные по email или SMS
- Используй двухфакторную аутентификацию
- Проверяй URL перед входом в аккаунты
- Обучайся распознавать подозрительные сообщения
- Сомневайся : если предложение слишком хорошее, чтобы быть правдой — вероятно, оно и не настоящее
В одном из государственных учреждений (назовём его условно «Организация N») произошёл странный инцидент. У одного из сотрудников внезапно перестал работать компьютер. Система зависла, не осталось ни свободной оперативной памяти, ни места на диске. Ни одно приложение не открывалось. Даже мышь перестала отзываться.
Причиной стал файл, который выглядел безобидно: архив размером всего 25–30 МБ, присланный по электронной почте. Никакого вируса, никакого эксплойта — просто злонамеренно созданный файл, который взял и «распух» до нескольких гигабайт при распаковке. Это пример использования так называемой «компрессионной бомбы» (compression bomb) — файла, который при распаковке занимает во много раз больше места, чем в сжатом виде. Архив, к примеру, весит 30 МБ, а при распаковке создаёт файл объёмом 16 ГБ. А если пользователь случайно откроет этот файл в текстовом редакторе, например, в Notepad — система попытается загрузить его полностью в оперативную память. Оперативная память (ОЗУ), например, всего 1–2 ГБ, забивается полностью, всё начинает «тормозить», своппинг в файл подкачки ещё больше замедляет систему. В конечном итоге — синий экран смерти, зависание или полная неработоспособность ПК.
К примеру, можно создать огромный файл из одних нулей:
Linux
dd if=/dev/zero bs=1M count=16384 | tr '\0' ' ' > bigfile.txt
Windows
@echo off
setlocal
set "filename=bigfile.txt"
set "size=16384"
set "block_size=1048576"
(for /L %%i in (1,1,%size%) do (
set "char= "
echo %char%
)) > "%filename%"
endlocal
Потом достаточно сжать его с максимальным уровнем и вуаля - всего несколько мегабайт, которые при распаковке снова станут 16 ГБ. Если внутри лежит огромный файл, то он начинает распаковываться в папку по умолчанию (часто на рабочий стол или в «Загрузки»), захватывает всё свободное место на диске, и если его открыть — система пытается загрузить весь файл в ОЗУ.
Это не вирусы. Это вообще не вредоносное ПО, это скорее юмор-подкол, который может сыграть злую шутку с тем, кто открывает неожиданные архивы от незнакомцев. Существует даже известный файл 42.zip — весит всего 42 КБ , но при распаковке создаёт файл 4.3 ГБ.